/**
 * 
 */
package com.ubo.java.associations;

import com.ubo.util.Duo;

/**
 * Classe interne représentant une association entre deux classModels.
 * 
 * @author saludegu
 * 
 */
public class Association {

	/**
	 * Nom d'un classifier.
	 */
	protected Integer mId1;

	/**
	 * Nom de l'autre classifier.
	 */
	protected Integer mId2;

	/**
	 * Type de l'association.
	 */
	protected EAssociationType mAssociationType;

	/**
	 * Cardinalité1.
	 */
	protected Card mCard1;

	/**
	 * Cardinalité2
	 */
	protected Card mCard2;

	/**
	 * 
	 * Constructor
	 * 
	 * @param id1
	 * @param id2
	 */
	public Association(Integer id1, Integer id2,
			EAssociationType associationType, Card card1, Card card2) {
		mId1 = id1;
		mId2 = id2;
		mAssociationType = associationType;
		mCard1 = card1;
		mCard2 = card2;
	}

	/**
	 * Renvoie l'association précedemment enregistrée.
	 * 
	 * @return
	 */
	public Duo<Integer, Integer> getAssociation() {
		return new Duo<Integer, Integer>(mId1, mId2);
	}

	/**
	 * @return the mAssociationType
	 */
	public EAssociationType getAssociationType() {
		return mAssociationType;
	}

	/**
	 * @return the mCard1
	 */
	public Card getCard1() {
		return mCard1;
	}

	/**
	 * @return the mCard2
	 */
	public Card getCard2() {
		return mCard2;
	}

}
